#1357N(-2) It does not have (purely) coclosed G2-structure. Third obstruction. Proposition 5.6


# w_l = {x1*x3*x4*x5*x6,x2*x3*x4*x5*x6,x1*x2*x3*x5*x6}
# W = <x1*x2*x3*x4*x5,x1*x2*x3*x4*X6,x1*x2*x4*x5*x6>

# Step 1. beta*beta.differential() in W, beta 2-form

A.<x1,x2,x3,x4,x5,x6,x7,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
M=A.cdg_algebra({x3: x1*x2, x5: x1*x3+x2*x4, x6:x1*x4, x7: x1*x5-2*x2*x3+x3*x4+x4*x6})
M.inject_variables()
beta=a*x1*x2+b*x1*x3+c*x1*x4+d*x1*x5+e*x1*x6+f*x2*x3+g*x2*x4+h*x2*x5+i*x2*x6+j*x3*x4+k*x3*x5+l*x3*x6+m*x4*x5+n*x4*x6+o*x5*x6
beta*beta.differential()

Defining x1, x2, x3, x4, x5, x6, x7, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o
-x1*x2*x3*x4*x6*e*k - x1*x2*x3*x4*x5*i*k + x1*x2*x3*x4*x6*d*l + x1*x2*x3*x4*x5*h*l - x1*x2*x3*x4*x6*i*m + x1*x2*x4*x5*x6*l*m + x1*x2*x3*x4*x6*h*n - x1*x2*x4*x5*x6*k*n - x1*x2*x3*x4*x6*b*o - x1*x2*x3*x4*x5*f*o - x1*x2*x3*x4*x6*g*o + x1*x2*x4*x5*x6*j*o

# Step 2. Compute tau, closed 3-form

A.<x1,x2,x3,x4,x5,x6> = GradedCommutativeAlgebra(QQ)
M=A.cdg_algebra({x3: x1*x2, x5: x1*x3+x2*x4, x6:x1*x4})
M.inject_variables()
M.cohomology(3)

(x1*x5).differential()
(x2*x3).differential()
(x2*x4).differential()
(x2*x5).differential()
(x2*x6).differential()
(x3*x4).differential()
(x3*x5).differential()
(x3*x6).differential()
(x4*x5).differential()
(x4*x6).differential()
(x5*x6).differential()

Defining x1, x2, x3, x4, x5, x6
Free module generated by {[x2*x3*x4], [x1*x3*x5 + x2*x3*x6], [x2*x3*x5], [x1*x4*x5], [x2*x4*x5 + x2*x3*x6], [x1*x3*x6], [x1*x4*x6], [x3*x4*x6 + x1*x5*x6]} over Rational Field
-x1*x2*x4
0
0
x1*x2*x3
x1*x2*x4
x1*x2*x4
x2*x3*x4 + x1*x2*x5
x1*x3*x4 + x1*x2*x6
-x1*x3*x4
0
-x1*x4*x5 + x1*x3*x6 + x2*x4*x6

# M=A.cdg_algebra({x3: x1*x2, x5: x1*x3+x2*x4, x6:x1*x4, x7: x1*x5-2*x2*x3+x3*x4+x4*x6})
# Hence tau*xi.differential(), i=3,4,5,6, contains x1*x2. x1*x2*x3*x5*x6 does not appear. It is in W

#Step 3.

A.<x1,x2,x3,x4,x5,x6,x7,a,b,c,d,e,f,g,h,i,j,k,l,m,n> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
M=A.cdg_algebra({x3: x1*x2, x5: x1*x3+x2*x4, x6:x1*x4, x7: x1*x5-2*x2*x3+x3*x4+x4*x6})
M.inject_variables()
tau=a*x2*x3*x4 +b*(x1*x3*x5 + x2*x3*x6)+c*x2*x3*x5+d*x1*x4*x5+e*(x2*x4*x5 + x2*x3*x6)+f*x1*x3*x6+g*x1*x4*x6+h*(x3*x4*x6 + x1*x5*x6)+i*x1*x2*x4+j*x1*x2*x3+k*x1*x2*x5+l*x1*x3*x4 + m*x1*x2*x6+n*x2*x4*x6
tau*x7.differential()

Defining x1, x2, x3, x4, x5, x6, x7, a, b, c, d, e, f, g, h, i, j, k, l, m, n
-x1*x2*x3*x4*x5*a + x1*x2*x3*x5*x6*b - x1*x3*x4*x5*x6*b - x2*x3*x4*x5*x6*c - 2*x1*x2*x3*x4*x5*d + x1*x2*x3*x5*x6*e - 2*x1*x2*x3*x4*x6*g - 2*x1*x2*x3*x5*x6*h + 2*x1*x3*x4*x5*x6*h + x1*x2*x3*x4*x6*j + x1*x2*x3*x4*x5*k - x1*x2*x4*x5*x6*k + x1*x2*x3*x4*x6*m + x1*x2*x4*x5*x6*n

# tau*x7.differential() in W forces b=2*h, c=0, e=0

#Step 4. Compute lambda(tau)

D.<e1,e2,e3,e4,e5,e6,f1,f2,f3,f4,f5,f6,g1,g2,g3,g4,g5,g6,h1,h2,h3,h4,h5,h6,a,b,c,d,e,f,g,h,i,j,k,l,m,n> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
N=D.cdg_algebra({})
N.inject_variables()
taue=a*e2*e3*e4 +2*h*(e1*e3*e5 + e2*e3*e6)+d*e1*e4*e5+f*e1*e3*e6+g*e1*e4*e6+h*(e3*e4*e6 + e1*e5*e6)+i*e1*e2*e4+j*e1*e2*e3+k*e1*e2*e5+l*e1*e3*e4 + m*e1*e2*e6+n*e2*e4*e6
tauf=a*f2*f3*f4 +2*h*(f1*f3*f5 + f2*f3*f6)+d*f1*f4*f5+f*f1*f3*f6+g*f1*f4*f6+h*(f3*f4*f6 + f1*f5*f6)+i*f1*f2*f4+j*f1*f2*f3+k*f1*f2*f5+l*f1*f3*f4 + m*f1*f2*f6+n*f2*f4*f6
taug=a*g2*g3*g4 +2*h*(g1*g3*g5 + g2*g3*g6)+d*g1*g4*g5+f*g1*g3*g6+g*g1*g4*g6+h*(g3*g4*g6 + g1*g5*g6)+i*g1*g2*g4+j*g1*g2*g3+k*g1*g2*g5+l*g1*g3*g4 + m*g1*g2*g6+n*g2*g4*g6
tauh=a*h2*h3*h4 +2*h*(h1*h3*h5 + h2*h3*h6)+d*h1*h4*h5+f*h1*h3*h6+g*h1*h4*h6+h*(h3*h4*h6 + h1*h5*h6)+i*h1*h2*h4+j*h1*h2*h3+k*h1*h2*h5+l*h1*h3*h4 + m*h1*h2*h6+n*h2*h4*h6
Cgfe=g1*f2*f3*e4*e5*e6+g1*f2*e3*f4*e5*e6+g1*f2*e3*e4*f5*e6+g1*f2*e3*e4*e5*f6+g1*e2*f3*f4*e5*e6+g1*e2*f3*e4*f5*e6+g1*e2*f3*e4*e5*f6+g1*e2*e3*f4*f5*e6+g1*e2*e3*f4*e5*f6+g1*e2*e3*e4*f5*f6+f1*g2*f3*e4*e5*e6+f1*g2*e3*f4*e5*e6+f1*g2*e3*e4*f5*e6+f1*g2*e3*e4*e5*f6+e1*g2*f3*f4*e5*e6+e1*g2*f3*e4*f5*e6+e1*g2*f3*e4*e5*f6+e1*g2*e3*f4*f5*e6+e1*g2*e3*f4*e5*f6+e1*g2*e3*e4*f5*f6+f1*f2*g3*e4*e5*e6+f1*e2*g3*f4*e5*e6+f1*e2*g3*e4*f5*e6+f1*e2*g3*e4*e5*f6+e1*f2*g3*f4*e5*e6+e1*f2*g3*e4*f5*e6+e1*f2*g3*e4*e5*f6+e1*e2*g3*f4*f5*e6+e1*e2*g3*f4*e5*f6+e1*e2*g3*e4*f5*f6+f1*f2*e3*g4*e5*e6+f1*e2*f3*g4*e5*e6+f1*e2*e3*g4*f5*e6+f1*e2*e3*g4*e5*f6+e1*f2*f3*g4*e5*e6+e1*f2*e3*g4*f5*e6+e1*f2*e3*g4*e5*f6+e1*e2*f3*g4*f5*e6+e1*e2*f3*g4*e5*f6+e1*e2*e3*g4*f5*f6+f1*f2*e3*e4*g5*e6+f1*e2*f3*e4*g5*e6+f1*e2*e3*f4*g5*e6+f1*e2*e3*e4*g5*f6+e1*f2*f3*e4*g5*e6+e1*f2*e3*f4*g5*e6+e1*f2*e3*e4*g5*f6+e1*e2*f3*f4*g5*e6+e1*e2*f3*e4*g5*f6+e1*e2*e3*f4*g5*f6+f1*f2*e3*e4*e5*g6+f1*e2*f3*e4*e5*g6+f1*e2*e3*f4*e5*g6+f1*e2*e3*e4*f5*g6+e1*f2*f3*e4*e5*g6+e1*f2*e3*f4*e5*g6+e1*f2*e3*e4*f5*g6+e1*e2*f3*f4*e5*g6+e1*e2*f3*e4*f5*g6+e1*e2*e3*f4*f5*g6
Cfgh=f1*g2*g3*h4*h5*h6+f1*g2*h3*g4*h5*h6+f1*g2*h3*h4*g5*h6+f1*g2*h3*h4*h5*g6+f1*h2*g3*g4*h5*h6+f1*h2*g3*h4*g5*h6+f1*h2*g3*h4*h5*g6+f1*h2*h3*g4*g5*h6+f1*h2*h3*g4*h5*g6+f1*h2*h3*h4*g5*g6+g1*f2*g3*h4*h5*h6+g1*f2*h3*g4*h5*h6+g1*f2*h3*h4*g5*h6+g1*f2*h3*h4*h5*g6+h1*f2*g3*g4*h5*h6+h1*f2*g3*h4*g5*h6+h1*f2*g3*h4*h5*g6+h1*f2*h3*g4*g5*h6+h1*f2*h3*g4*h5*g6+h1*f2*h3*h4*g5*g6+g1*g2*f3*h4*h5*h6+g1*h2*f3*g4*h5*h6+g1*h2*f3*h4*g5*h6+g1*h2*f3*h4*h5*g6+h1*g2*f3*g4*h5*h6+h1*g2*f3*h4*g5*h6+h1*g2*f3*h4*h5*g6+h1*h2*f3*g4*g5*h6+h1*h2*f3*g4*h5*g6+h1*h2*f3*h4*g5*g6+g1*g2*h3*f4*h5*h6+g1*h2*g3*f4*h5*h6+g1*h2*h3*f4*g5*h6+g1*h2*h3*f4*h5*g6+h1*g2*g3*f4*h5*h6+h1*g2*h3*f4*g5*h6+h1*g2*h3*f4*h5*g6+h1*h2*g3*f4*g5*h6+h1*h2*g3*f4*h5*g6+h1*h2*h3*f4*g5*g6+g1*g2*h3*h4*f5*h6+g1*h2*g3*h4*f5*h6+g1*h2*h3*g4*f5*h6+g1*h2*h3*h4*f5*g6+h1*g2*g3*h4*f5*h6+h1*g2*h3*g4*f5*h6+h1*g2*h3*h4*f5*g6+h1*h2*g3*g4*f5*h6+h1*h2*g3*h4*f5*g6+h1*h2*h3*g4*f5*g6+g1*g2*h3*h4*h5*f6+g1*h2*g3*h4*h5*f6+g1*h2*h3*g4*h5*f6+g1*h2*h3*h4*g5*f6+h1*g2*g3*h4*h5*f6+h1*g2*h3*g4*h5*f6+h1*g2*h3*h4*g5*f6+h1*h2*g3*g4*h5*f6+h1*h2*g3*h4*g5*f6+h1*h2*h3*g4*g5*f6
(-1/6)*taue*Cgfe*tauf*tauh*Cfgh*taug

e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*a^2*h^2 + 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*a*d*h^2 + 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*d^2*h^2 + 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*a*f*h^2 - 8*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*d*f*h^2 + 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*f^2*h^2 + 8*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*h^3*j + 2*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*a*h^2*k + 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*d*h^2*k - 4*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*f*h^2*k + e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*h^2*k^2 - 16*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*h^3*l

#  a^2*h^2+4*a*d*h^2+4*d^2*h^2+2*a*h^2*k+4*d*h^2*k+h^2*k^2-4*a*h^2*n-8*d*h^2*n-4*h^2*k*n+4*h^2*n^2 =
# = h^2*(2*n-k-2*d-a)^2 \geq 0
